package com.itheima.service.pms;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.dto.pms.ProductCreateDto;
import com.itheima.result.PageResult;
import com.itheima.vo.pms.Product;

import java.util.ArrayList;
import java.util.List;

public interface PmsProductService extends IService<Product> {
    /**
     * 新增商品
     * @param productCreateDto
     * @return
     */
    void addCreate(ProductCreateDto productCreateDto);

    /**
     * 查询商品
     * @param
     * @return
     */
    PageResult productList(Long brandId , String keyword , Long pageNum , Long pageSize , Long productCategoryId , String productSn , Integer publishStatus , Integer verifyStatus);

    /**
     * 根据商品名称或货号模糊查询
     * @param keyword
     * @return
     */
    List<Product> keyword(String keyword);

    /**
     * 批量修改删除状态
     * @param deleteStatus
     * @param ids
     * @return
     */
    void updateDeleteStatus(Integer deleteStatus, List<Integer> ids);

    /**
     * 批量设为新品
     * @param newStatus
     * @param ids
     * @return
     */
    void updateNewStatus(Integer newStatus, List<Integer> ids);

    /**
     * 批量上下架商品
     * @param publishStatus
     * @param ids
     * @return
     */
    void updatePublishStatus(Integer publishStatus, List<Integer> ids);

    /**
     * 批量推荐商品
     * @param recommendStatus
     * @param ids
     * @return
     */
    void updateRecommendStatus(Integer recommendStatus, List<Integer> ids);

    /**
     * 批量修改审核状态
     * @param verifyStatus
     * @param detail
     * @param ids
     * @return
     */
    void updateVerifyStatus(Integer verifyStatus, String detail, List<Long> ids);

    /**
     * 根据商品id获取商品编辑信息
     * @param id
     * @return
     */
    ProductCreateDto updateInfo(Long id);

    /**
     * 更新商品
     * @param id
     * @param productCreateDto
     * @return
     */
    void updateProduct(Long id, ProductCreateDto productCreateDto);
}
